package com.statistics.service;

import com.alibaba.fastjson2.JSONObject;
import com.statistics.domain.vo.HxProjectNumVo;
import com.statistics.domain.vo.UnitPersonVo;
import com.statistics.domain.vo.ZxProjectNumVo;

import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.Map;

/**
 * 固定报表Service
 *
 * @author chenyy
 * &#064;date  2025/2/25 12:06
 */
public interface FixedReportService {
    // 根据开始年份和结束年份获取单位统计信息
    JSONObject getUnitAchievement(Integer beginYear, Integer endYear, int type);

    /* 根据开始年份和结束年份获取单位获奖信息 */
    List<Map<String, Object>> getUnitHonor(Integer beginYear, Integer endYear);

    // 获取单位人员类型分布统计
    List<UnitPersonVo> getUnitPersonType();

    // 根据按合同级别获取横向项目各年度数量统计
    List<HxProjectNumVo> getHxProjectNum(Integer beginYear, Integer endYear);

    // 根据按项目级别获取纵向项目各年度数量统计
    List<ZxProjectNumVo> getZxProjectNum(Integer beginYear, Integer endYear);

    void getUnitAchievementExport(Integer beginYear, Integer endYear, HttpServletResponse response) throws Exception;

    void getUnitHonorExport(Integer beginYear, Integer endYear, HttpServletResponse response) throws Exception;

    void getUnitPersonTypeExport(HttpServletResponse response);

    void getHxProjectNumExport(Integer beginYear, Integer endYear, HttpServletResponse response);

    void getZxProjectNumExport(Integer beginYear, Integer endYear, HttpServletResponse response);
}